LPP(레이어이름 일괄 문자추가) 반대 기능 요청
페이지 정보
작성자 나현 댓글 6건 조회 3,606회 작성일 23-08-14 16:00본문
레이어 정리시 LPP를 사용하여 레이어에 일괄적으로 문자를 붙일 수 있어서 편리한데요!
반대로 "공통된 문자"를 일괄적으로 제거할 수 있는 기능이 추가되면 좋겠다고 생각이 들어 요청드립니다!
예를들어,
공통 삭제 문자에 "A-"를 입력하면,
A-CEN > CEN
A-CON > CON
.
.
.
이런식으로 공통된 접미사or 접두사를 제거해주는 기능이 있다면 무척 좋을 것 같습니다!
검토후 반영이 가능하시다면 힘써주세요!
항상 감사드립니다! (^^)(_ _)
댓글목록
zwcad사용자님의 댓글
zwcad사용자 작성일
(defun c:rpslay ( / idx lay lst pre sel suf )
(setq pre (pslay:getstring "\n제거할 레이어 접두사 <없으면 엔터>: ")
suf (pslay:getstring "\n제거할 레이어 접미사 <없으면 엔터>: ")
)
(if (and (not (= "" pre suf)) (setq sel (ssget (list (cons 8 (strcat pre "*" suf))))))
(repeat (setq idx (sslength sel))
(or (member (setq lay (cdr (assoc 8 (entget (ssname sel (setq idx (1- idx))))))) lst)
(setq lst (cons (pslay:renamelayer lay (substr lay (1+ (strlen pre)) (- (strlen lay) (strlen pre) (strlen suf)))) lst))
)
)
)
(princ)
)
(defun pslay:renamelayer ( old new / lay )
(cond
( (tblsearch "layer" new)
(prompt (strcat "\n" new " already exists, cannot rename " old "."))
)
( (wcmatch (strcase old t) "0,defpoints,*|*")
(prompt (strcat "\nCannot rename " old "."))
)
( (and (setq lay (tblobjname "layer" old))
(setq lay (entget lay))
(entmod (subst (cons 2 new) (assoc 2 lay) lay))
)
(prompt (strcat "\n [" old "] 레이어가 [" new "]로 변경되었습니다"))
new
)
)
)
(defun pslay:getstring ( msg / rtn )
(while (and (/= "" (setq rtn (getstring t msg))) (wcmatch rtn "*[\\<>/?\":;*|`,=`]*"))
(princ (strcat "\nLayer name cannot contain the characters \\<>/?\":;*|,=`"))
)
rtn
)
XICAD의 LST (모든 켜 목록 작성) 과 함께 사용하면 편리합니다
이자더님의 댓글
이자더 작성일
감사합니다.
구문을 쓰는 방식이 저와 거의 유사하세요^^
나현님의 댓글
나현 작성일이게 뭔지몰라서 한참 고민하다 onekey 에 붙여서 넣었더니 세상에 새로운 단축키가 구동이 되네요.. 정말 신기하고 감사합니다.
이자더님의 댓글
이자더 작성일v4.65 반영
나현님의 댓글
나현 작성일헉 4.65는 언제 나오나요!? 아직 4.64가 가장 최신 버전인게 맞지요?
이자더님의 댓글
이자더 작성일네. 4.65 는 다음 버전입니다.